package com.mango.leet.code.week2.game78;

/**
 * 5299. 找到一个数字的 K 美丽值
 * @Author: mango
 * @Date: 2022/5/14 10:31 下午
 */

/**
 * 一个整数 num 的 k 美丽值定义为 num 中符合以下条件的 子字符串 数目：
 *
 * 子字符串长度为 k 。
 * 子字符串能整除 num 。
 * 给你整数 num 和 k ，请你返回 num 的 k 美丽值。
 *
 * 注意：
 *
 * 允许有 前缀 0 。
 * 0 不能整除任何值。
 * 一个 子字符串 是一个字符串里的连续一段字符序列。
 *
 *
 *
 * 示例 1：
 *
 * 输入：num = 240, k = 2
 * 输出：2
 * 解释：以下是 num 里长度为 k 的子字符串：
 * - "240" 中的 "24" ：24 能整除 240 。
 * - "240" 中的 "40" ：40 能整除 240 。
 * 所以，k 美丽值为 2 。
 * 示例 2：
 *
 * 输入：num = 430043, k = 2
 * 输出：2
 * 解释：以下是 num 里长度为 k 的子字符串：
 * - "430043" 中的 "43" ：43 能整除 430043 。
 * - "430043" 中的 "30" ：30 不能整除 430043 。
 * - "430043" 中的 "00" ：0 不能整除 430043 。
 * - "430043" 中的 "04" ：4 不能整除 430043 。
 * - "430043" 中的 "43" ：43 能整除 430043 。
 * 所以，k 美丽值为 2 。
 *
 *
 * 提示：
 *
 * 1 <= num <= 109
 * 1 <= k <= num.length （将 num 视为字符串）
 */
public class LC5299 {
    public static void main(String[] args) {
        //int num = 240;
        int num = 430043;
        int k = 2;
        System.out.println(new Solution().divisorSubstrings(num,k));
    }
    static class Solution {
        // 字符串截取
        public int divisorSubstrings(int num, int k) {
            int n = (num + "").length();
            int result = 0;
            for(int i=0;i<=n-k;i++){
                int the = Integer.valueOf((num + "").substring(i,i+k));
                if(the != 0 && num % the == 0){
                    result++;
                }
            }
            return result;
        }
    }
}
